package cn.edu.wynu;

public class Test05 {
    public static void main(String[] args) {
        // 案例五：数组拷贝
        // 需求：请把一个整型数组，例如存了数据:11，22，33，拷贝成一个一模一样的新数组出来

        int[] arr = {11, 22, 33};
        int[] arr2 = copy(arr);
        printArray(arr2);

        /*// 注意：这个方法不是拷贝数组，只是把数组的引用拷贝到了另一个变量中，两个变量指向的是同一个数组
        int[] arr3 = arr;
        arr3[1] = 100;
        System.out.println(arr[1]); // 输出100*/

        arr2[2] = 200;
        System.out.println(arr[1]); // 输出22
    }
    // 定义一个方法，实现数组的拷贝
    public static void printArray(int[] arr) {
        System.out.print("[");
        for (int i = 0; i < arr.length; i++) {
            System.out.print(i == arr.length - 1 ? arr[i] : arr[i] + ","  );
        }
        System.out.println("]");
    }

    public static int[] copy(int[] arr) {
        // arr = [11, 22, 33]
        // 1.创建一个长度一样的数组，用来存储拷贝的数据
        int[] arr2 = new int[arr.length];
        // arr2 = [0, 0, 0]

        // 2.遍历数组，把数组中的数据，依次拷贝到新数组中
        for (int i = 0; i < arr.length; i++) {
            arr2[i] = arr[i];
        }
        return arr2;
    }
}
